package com.example.utils;

import java.util.Random;

/**
 * 随机生成验证码工具类
 *
 * @author czx
 * @since 2022/5/6 11:41
 */

public class ValidateCodeUtils {
    /**
     * 随记生成验证码
     *
     * @param len 长度为4或6
     * @return 随机验证码
     */
    public static Integer generateValidateCode(int len) {
        int code;
        if (len == 4) {
            //生成随机数，最大为9999
            code = new Random().nextInt(9999);
            if (code < 1000) {
                //保证随机数为四位数
                code = code + 1000;
            }
        } else if (len == 6) {
            //生成随机数，最大为999999
            code = new Random().nextInt(999999);
            if (code < 100000) {
                //保证随机数为六位数
                code = code + 100000;
            }
        } else {
            throw new RuntimeException("只能生成4位或六位数字验证码");
        }
        return code;
    }

    /**
     * 随记生成指定长度字符串验证码
     *
     * @param len 长度
     * @return 字符串验证码
     */
    public static String generateValidateCodeString(int len) {
        Random random = new Random();
        String hexString = Integer.toHexString(random.nextInt());
        return hexString.substring(0, len);
    }
}
